Forward Error Correction (FEC) refers to techniques of transmitting encoded data using additional redundancy data or error-correction data to allow a receiver to decode, detect, and/or correct transmission errors in the data without needing to request a retransmission of the data. Certain FEC encoding techniques, such as Reed-Solomon coding and other block codes, may be performed on fixed length blocks of data of predetermined size, while other FEC encoding techniques, such as convolutional coding, may be performed on bit streams of arbitrary length.
Many modern communication systems provide digital error control by using a FEC implementation that concatenates a convolutional encoding technique and a Reed-Solomon encoding technique. When decoding transmissions encoded with both Viterbi and Reed-Solomon FEC algorithms, a Viterbi decoder is employed first because Viterbi is the inner code. The Reed-Solomon, as the outer code, is decoded second. Certain Reed-Solomon implementations employ erasure capabilities, which have the capacity to correct twice the number of symbol errors as Reed-Solomon implementations without erasure capabilities. However, in a concatenated Viterbi and Reed-Solomon decoding system, the Reed-Solomon code typically does not employ erasure. For such concatenated systems, the reason for the lack of erasure capability in the Reed-Solomon code is that there should be a very high confidence that the transmission symbols are in error before they should be erased. For example, if only half of the erasures were actually in error and half of the erasures had been corrected by the Viterbi decoding, then a soft decision improvement of Reed-Solomon erasure would be entirely negated.
Viterbi decoding is generally effective at correcting randomly-spaced single errors in a transmission bit stream. However, Viterbi decoding may not be successful in correcting certain digital error bursts due to pulses and fades. Such error bursts may be caused by interference bursts emitted by radars and from signal outages due to signal fading. Although Viterbi decoding is capable of correcting certain digital error bursts, it will fail to correct many other such error bursts. Reed-Solomon decoding is generally good at correcting error bursts.